// Static Methods（ 如何操作方法？）
class Animal {
    constructor(type) {
        this.type = type
    }
    eat() {
        Animal.walk()
        console.log(`i am ${this.type} I eat food`)
    }
    // 用来识别是否是静态方法，注意！！！类的静态方法拿到不到类的实例对象
    static walk() {
        console.log('i am walking')
        // console.log(this.type) //拿不到
    }
}
// let dog = new Animal('dog');
// dog.eat()

// es5实现继承：
// let Dog = function () {
//     // 初始化父类的构造函数,实现部分父类继承
//     Animal.call(this, 'dog')
//     this.run = function () {
//         console.log('i can run')
//     }
// }
// // 内存地址引用地址指向
// Dog.prototype = Animal.prototype

// let dog = new Dog('dog');
// dog.eat()

class Dog extends Animal {
    constructor(type) {
        super(type)

    }
}

let dog = new Dog("dog");
dog.eat()